/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Interfaz;

import dao.ActorManager;
import dao.ArtistManager;
import dao.DirectorManager;
import dao.MovieManager;
import dao.PersonManager;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.Random;
import javax.swing.*;
import javax.swing.plaf.basic.BasicBorders;
import jpapractica.Movie;

/**
 *
 * @author LenovoPC
 */
public class formulario extends JFrame implements ActionListener{
    
    
    PersonManager pm= new PersonManager();
    ArtistManager arm= new ArtistManager();
    MovieManager mm=new MovieManager();
    ActorManager am= new ActorManager();
    DirectorManager dm= new DirectorManager();
    String []lisGenero={"--------","Drama","Comedia","Acción","Aventura","Terror","Ciencia Ficción", "Humor","Suspenso","Otro"};
    JComboBox generos= new JComboBox(lisGenero);
    JLabel buscp;
    JLabel nombrep;
    JLabel añ;
    JLabel cov;
    JLabel genero;
    JLabel dura;
    JLabel disponibleAl;
    JLabel disponibleVen;
    
    JTextField buscPeli;
    JTextField nombrePeli;
    JTextField año;
    JTextField cover;
    JTextField duracion;
    JRadioButton sia;
    JRadioButton noa;
    JRadioButton siv;
    JRadioButton nov;
            
    ButtonGroup disponibleAlquiler;
    ButtonGroup disponibleVenta;
    
    JPanel form;
    JPanel movie;
    JPanel persona;
    JPanel alquiler;
    JPanel venta;
    JPanel botonesPeli;
    
    JButton buscPel;
    JButton agregarPeli;
    JButton actualizarPeli;
    JButton borrarPeli;
    
    //PARA EL FORMULARIO DE PERSONA
    String []lisDia={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"};
    String []lisMes={"1","2","3","4","5","6","7","8","9","10","11","12"};
    JComboBox dias= new JComboBox(lisDia);
    JComboBox meses= new JComboBox(lisMes);
    JLabel buscper;
    JLabel nombreper;
    JLabel apellidoper;
    JLabel fotoper;
    JLabel fechanaci;
    JLabel dia;
    JLabel mes;
    JLabel añoper;        
    JLabel lugarnaci;
    
    JTextField buscarPersona;
    JTextField nombrePersona;
    JTextField apellidoPersona;
    JTextField linkFotoPersona;
    JTextField añoPersona;
    JTextField lugarNacimientoPersona;
    
    JButton buscarPer;
    JButton agregarPer;
    JButton actualizarPer;
    JButton borrarPer;
    
    JPanel eleccion;
    JPanel panelBuscPersona;
    JPanel panelFechaNac;
    JPanel botonesper;
    
    JRadioButton peli;
    JRadioButton actor;
    JRadioButton artist;
    JRadioButton direct;
    ButtonGroup grupoModificar;
    
    
    
    
    public formulario(){
     
        super( "FORMULARIO DE MODIFICACIÓN " );
     //Formulario pelicula--------------------------------------------------  
     GridLayout g1= new GridLayout(3,1,20,10);
     form= new JPanel();
     form.setLayout(g1);
     
     GridLayout g0= new GridLayout(5,1);
     GridLayout g2= new GridLayout(8,3, 2, 2);
     GridLayout g3= new GridLayout(1,2);
     GridLayout g4= new GridLayout(1,3);
     eleccion = new JPanel();
     eleccion.setLayout(g0);
     eleccion.setForeground(Color.white);
     movie= new JPanel();
     
      JLabel sele=new JLabel("Seleccione el campo que desea modificar");
      sele.setForeground(Color.blue);
      peli=new JRadioButton("Pelicula");
      peli.setSelected(true);
      actor= new JRadioButton("Actor");
      artist=new JRadioButton("Artista");
      direct=new JRadioButton("Director");
      
      grupoModificar = new ButtonGroup();
      grupoModificar.add(peli);
      grupoModificar.add(actor);
      grupoModificar.add(artist);
      grupoModificar.add(direct);
      
      eleccion.add(sele);
      eleccion.add(peli);
      eleccion.add(actor);
      eleccion.add(artist);
      eleccion.add (direct);
      
      
    
     movie.setLayout(g2);
     movie.setBackground(Color.white);
     alquiler= new JPanel(g3);
     venta=new JPanel(g3);
     botonesPeli=new JPanel(g4);
     
     buscp= new JLabel("         Buscar Película:");
     buscp.setForeground(Color.blue);
     nombrep= new JLabel("         Nombre Pelicula:");
     añ= new JLabel("         Año de estreno:");
     cov= new JLabel("         Cover:");
     genero =new JLabel("         Genero");
     dura=new JLabel("         Duración");
     disponibleAl= new JLabel("         Disponible para alquiler:");
     disponibleVen= new JLabel("         Disponible para venta:");
     
     buscPeli= new JTextField();
     nombrePeli= new JTextField();
     año=new JTextField();
     cover=new JTextField();
     duracion=new JTextField();
     sia= new JRadioButton("Si");
     noa= new JRadioButton("No");
     siv=new JRadioButton("Si");
     nov=new JRadioButton("No");
     disponibleAlquiler=new ButtonGroup();
     disponibleVenta=new ButtonGroup();
     
     buscPel=new JButton("Buscar");
     agregarPeli=new JButton("Agregar");
     actualizarPeli=new JButton("Actualizar");
     borrarPeli=new JButton("Borrar");
     
     disponibleAlquiler.add(sia);
     disponibleAlquiler.add(noa);
     disponibleVenta.add(siv);
     disponibleVenta.add(nov);
    
     movie.add(buscp);
     movie.add(buscPeli);
     movie.add(buscPel);
     movie.add(nombrep);
     movie.add(nombrePeli);
     movie.add(new JLabel("    "));
     movie.add(añ);
     movie.add(año);
     movie.add(new JLabel("    "));
     movie.add(cov);
     movie.add(cover);
     movie.add(new JLabel("    "));
     movie.add(genero);
     movie.add(generos);
     movie.add(new JLabel("    "));
     movie.add(dura);
     movie.add(duracion);
     movie.add(agregarPeli);
     movie.add(disponibleAl);
     movie.add(alquiler);
     alquiler.add(sia);
     alquiler.add(noa);
     movie.add(actualizarPeli);
     movie.add(disponibleVen);
     movie.add(venta);
     venta.add(siv);
     venta.add(nov);
     movie.add(borrarPeli);
    
     
    
     
     //Formulario actor
     
     GridLayout g5=new GridLayout(7,2);
     GridLayout g6= new GridLayout(1,2);
     GridLayout g7= new GridLayout(1,6);
     
     persona=new JPanel();
     panelBuscPersona= new JPanel();
     panelFechaNac= new JPanel();
     botonesper= new JPanel();
     persona.setLayout(g5);
     persona.setBackground(Color.white);
     panelBuscPersona.setLayout(g6);
     panelFechaNac.setLayout(g7);
     botonesper.setLayout(g4);
     
     buscper=new JLabel("         Buscar Persona:");
     buscper.setForeground(Color.blue);
     nombreper=new JLabel("         Nombre:");
     apellidoper=new JLabel("         Apellido:");
     fotoper= new JLabel("         Link foto:");
     fechanaci= new JLabel("         Fecha de nacimiento:");
     dia= new JLabel("Día:");
     mes=new JLabel("Mes:");
     añoper=new JLabel("Año:");
     añoPersona=new JTextField();
     lugarnaci= new JLabel("         Lugar de Nacimiento");
     
     buscarPersona= new JTextField();
     nombrePersona= new JTextField();
     apellidoPersona=new JTextField();
     linkFotoPersona=new JTextField();
     lugarNacimientoPersona= new JTextField();
     
     buscarPer= new JButton("Buscar");
     agregarPer= new JButton("Agregar");
     actualizarPer= new JButton("Actualizar");
     borrarPer=new JButton("Borrar");
     
     persona.add(buscper);
     persona.add(panelBuscPersona);
     panelBuscPersona.add(buscarPersona);
     panelBuscPersona.add(buscarPer);
     persona.add(nombreper);
     persona.add(nombrePersona);
     persona.add(apellidoper);
     persona.add(apellidoPersona);
     persona.add(fotoper);
     persona.add(linkFotoPersona);
     persona.add(fechanaci);
     persona.add(panelFechaNac);
     panelFechaNac.add(dia);
     panelFechaNac.add(dias);
     panelFechaNac.add(mes);
     panelFechaNac.add(meses);
     panelFechaNac.add(añoper);
     panelFechaNac.add(añoPersona);
     persona.add(lugarnaci);
     persona.add(lugarNacimientoPersona);
     persona.add(new JLabel("  "));
     persona.add(botonesper);
     botonesper.add(agregarPer);
     botonesper.add(actualizarPer);
     botonesper.add(borrarPer);
     
     
     
     buscarPer.addActionListener(this);
     agregarPer.addActionListener(this);
     actualizarPer.addActionListener(this);
     borrarPer.addActionListener(this);
     buscPel.addActionListener(this);
     agregarPeli.addActionListener(this);
     actualizarPeli.addActionListener(this);
     borrarPeli.addActionListener(this);
     
     
     form.add(eleccion);
     form.add(movie);
     form.add(persona);
     add(form);
     
     setVisible(true);
     setSize(550,500);
     
    }
    public int rando(){
    Random r = new Random();
    return r.nextInt();
    } 
    @Override
    public void actionPerformed(ActionEvent e) {
        Object bot= e.getSource();
        
       
         if (bot==agregarPeli){
            int r0= rando();
            if(peli.isSelected()){
            agregarPer.setEnabled(false);

            int year = Integer.parseInt(año.getText());
            String gene=generos.getSelectedItem()+"";
            float dur= Float.parseFloat(duracion.getText());
            boolean rental = sia.isSelected();
            boolean purcha=siv.isSelected();
         
             mm.create(r0,nombrePeli.getText(), year, cover.getText(), "pelicula", gene,dur, rental, purcha);
             JOptionPane.showMessageDialog(null, "Se agrego la pelicula");
        }
       }
       
         if (bot==agregarPer){
             
             int r1= rando();
             String di=dias.getSelectedItem()+"";
             String me=meses.getSelectedItem()+"";
             int dii= Integer.parseInt(di);
             int mee= Integer.parseInt(me);
             int añio=Integer.parseInt(añoPersona.getText());

           
             if(actor.isSelected()){

                am.create(r1, nombrePersona.getText(), apellidoPersona.getText(),linkFotoPersona.getText(), lugarNacimientoPersona.getText(), dii, mee, añio);
             JOptionPane.showMessageDialog(null, "Se agrego el Actor");

             }
             else if(artist.isSelected()){
                
                arm.create(r1,nombrePersona.getText(), apellidoPersona.getText(),linkFotoPersona.getText(), lugarNacimientoPersona.getText(), dii, mee, añio);
             JOptionPane.showMessageDialog(null, "Se agrego el Artista");
             }
             else if(direct.isSelected()){

                 dm.create(r1, nombrePersona.getText(), apellidoPersona.getText(), linkFotoPersona.getText(), lugarNacimientoPersona.getText(),dii, mee, añio);
             JOptionPane.showMessageDialog(null, "Se agrego el Director");
             }
             
           }
         if (bot==actualizarPeli){
 
            if(peli.isSelected()){
            actualizarPer.setEnabled(false);
            int year = Integer.parseInt(año.getText());
            String gene=generos.getSelectedItem()+"";
            float dur= Float.parseFloat(duracion.getText());
            boolean rental = sia.isSelected();
            boolean purcha=siv.isSelected();

  
             mm.update(mm.buscar(nombrePeli.getText()).get(0).getId(),nombrePeli.getText(), year, cover.getText(), "pelicula", gene,dur, rental, purcha);
             JOptionPane.showMessageDialog(null, "Se actualizo la pelicula");
        }
         if (bot==actualizarPer){
             
  
             String di=dias.getSelectedItem()+"";
             String me=meses.getSelectedItem()+"";
             int dii= Integer.parseInt(di);
             int mee= Integer.parseInt(me);
             int añio=Integer.parseInt(añoPersona.getText());
             if(actor.isSelected()){

                am.create(pm.buscar(nombrePersona.getText()).get(0).getId(), nombrePersona.getText(), apellidoPersona.getText(),linkFotoPersona.getText(), lugarNacimientoPersona.getText(), dii, mee, añio);
             JOptionPane.showMessageDialog(null, "Se actualizo el Actor");

             }
             else if(artist.isSelected()){
                
                arm.create(pm.buscar(nombrePersona.getText()).get(0).getId(),nombrePersona.getText(), apellidoPersona.getText(),linkFotoPersona.getText(), lugarNacimientoPersona.getText(), dii, mee, añio);
             JOptionPane.showMessageDialog(null, "Se actualizo el Artista");
             }
             else if(direct.isSelected()){

                 dm.create(pm.buscar(nombrePersona.getText()).get(0).getId(), nombrePersona.getText(), apellidoPersona.getText(), linkFotoPersona.getText(), lugarNacimientoPersona.getText(),dii, mee, añio);
             JOptionPane.showMessageDialog(null, "Se actualizo el Director");
             }
             
           }
         if (bot==borrarPeli){                
             mm.delete(mm.buscar(nombrePeli.getText()).get(0).getId());
             JOptionPane.showMessageDialog(null, "Se borro la pelicula");
        }
         if (bot==borrarPer){
             
             if(actor.isSelected()){

                am.delete(pm.buscar(nombrePersona.getText()).get(0).getId());
             JOptionPane.showMessageDialog(null, "Se borro el Actor");

             }
             else if(artist.isSelected()){
                
                arm.delete(pm.buscar(nombrePersona.getText()).get(0).getId());      
                 JOptionPane.showMessageDialog(null, "Se borro el Artista");
             }
             else if(direct.isSelected()){

                 dm.delete(pm.buscar(nombrePersona.getText()).get(0).getId());             
                 JOptionPane.showMessageDialog(null, "Se borro el Director");
             }
             
           }                
       
       
    }  
}
}